Optimal display and zoom of objects and text in a document

ABSTRACT

An object is zoomed upon selection. A scaling factor is calculated for zooming the object based on current viewing properties of a document and properties of the object as well as the current size of the application window and device. The scaling factor to zoom the object is calculated such that after the object is zoomed, viewing the object is similar to a viewing experience for the rest of the document. Text of the document may be displayed to increase the readability of the document. For example, the text may be displayed such that each line of displayed text averages out to a predetermined number of characters (e.g. 50-75 characters) per line. A display size and width of an average character are determined and used to calculate how many columns of text to display within the display. When the zoom level of the text changes, the text is redisplayed.

RELATED APPLICATIONS

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. ______, filed ______, entitled OPTIMAL DISPLAY ANDZOOM OF OBJECTS AND TEXT IN A DOCUMENT, bearing Attorney Docket No.14917.1973US01, which is hereby incorporated by reference.

BACKGROUND

It is common for text and objects shown on a display to be resizedindependently. For example, objects in a document may be resized forbetter readability, printing, a different display size, and the like.Many objects, however, are created with an intimate knowledge of theiroriginal size (e.g. a table that is sized to make optimal use of thepage's width). Resizing an object can result in at least a portion ofthe contents to scale improperly and be difficult to read, whileresizing the entire document by the same scale factor can result inmaking the entire document difficult to consume unnecessarily.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

An object is zoomed upon selection. A scaling factor is calculated forzooming the object based on current viewing properties of a document andproperties of the object. The determined viewing properties may includea current zoom level of the document and/or a font size of text withinthe document. The determined object properties (e.g. a font size in theobject) are used to calculate the scaling factor to zoom the object suchthat after the object is zoomed, the object is similar to a viewingexperience for the rest of the document. As well, text of the documentmay be displayed to increase the readability of the document. Forexample, the text may be displayed such that each line of displayed textaverages out to a predetermined number of characters (e.g. 50-75characters) per line. A display size and width of an average characterare determined and used to calculate how many columns of text to displaywithin the display. When the desired font size of the text changes, thetext is redisplayed to maintain the average of the desired number ofcharacters per line.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary computing device;

FIG. 2 illustrates an exemplary system for zooming objects anddisplaying text within a document;

FIG. 3 shows an example of selecting an object to zoom and zooming theobject;

FIG. 4 shows an object that fits in a window in a small zoom state, aninitial zoom state and a large zoom state

FIG. 5 shows an object that includes a dimension that does not fit intoa window after zooming to at least one of: a small zoom state, aninitial zoom state and a large zoom state;

FIG. 6 shows an object that includes at least one dimension that doesnot fit in a window in a small zoom state, an initial zoom state and alarge zoom state;

FIG. 7 shows a comments element displayed within the zoom window inresponse to receiving a selection of showing comments;

FIG. 8 shows a process for zooming an object;

FIG. 9 illustrates a process for displaying text in a document;

FIG. 10 shows an initial layout of text;

FIG. 11 shows a layout of text displayed for readability; and

FIG. 12 shows maintaining a ratio as a zoom level is increased fordisplay of text.

DETAILED DESCRIPTION

Referring now to the drawings, in which like numerals represent likeelements, various embodiments will be described. In particular, FIG. 1and the corresponding discussion are intended to provide a brief,general description of a suitable computing environment in whichembodiments may be implemented.

Generally, program modules include routines, programs, components, datastructures, and other types of structures that perform particular tasksor implement particular abstract data types. Other computer systemconfigurations may also be used, including hand-held devices,multiprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers, and the like.Distributed computing environments may also be used where tasks areperformed by remote processing devices that are linked through acommunications network. In a distributed computing environment, programmodules may be located in both local and remote memory storage devices.

Referring now to FIG. 1, an illustrative computer architecture for acomputer 100 utilized in the various embodiments will be described. Thecomputer architecture shown in FIG. 1 may be configured as a desktopcomputing device, a server computing device, a mobile computing device(e.g. smartphone, notebook, tablet . . . ) and includes a centralprocessing unit 5 (“CPU”), a system memory 7, including a random accessmemory 9 (“RAM”) and a read-only memory (“ROM”) 10, and a system bus 12that couples the memory to the central processing unit (“CPU”) 5.

A basic input/output system containing the basic routines that help totransfer information between elements within the computer, such asduring startup, is stored in the ROM 10. The computer 100 furtherincludes a mass storage device 14 for storing an operating system 16,application(s) 24, and other program modules, such as Web browserapplications 25, documents 27, and zoom manager 26 which will bedescribed in greater detail below.

The mass storage device 14 is connected to the CPU 5 through a massstorage controller (not shown) connected to the bus 12. The mass storagedevice 14 and its associated computer-readable media providenon-volatile storage for the computer 100. Although the description ofcomputer-readable media contained herein refers to a mass storagedevice, such as a hard disk or CD-ROM drive, the computer-readable mediacan be any available media that can be accessed by the computer 100.

By way of example, and not limitation, computer-readable media maycomprise computer storage media and communication media. Computerstorage media includes volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer-readable instructions, data structures,program modules or other data. Computer storage media includes, but isnot limited to, RAM, ROM, Erasable Programmable Read Only Memory(“EPROM”), Electrically Erasable Programmable Read Only Memory(“EEPROM”), flash memory or other solid state memory technology, CD-ROM,digital versatile disks (“DVD”), or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to store thedesired information and which can be accessed by the computer 100.

According to various embodiments, computer 100 may operate in anetworked environment using logical connections to remote computersthrough a network 18, such as the Internet. The computer 100 may connectto the network 18 through a network interface unit 20 connected to thebus 12. The network connection may be wireless and/or wired. The networkinterface unit 20 may also be utilized to connect to other types ofnetworks and remote computer systems. The computer 100 may also includean input/output controller 22 for receiving and processing input from anumber of other devices, such as a touch input device. The touch inputdevice may utilize any technology that allows single/multi-touch inputto be recognized (touching/non-touching). For example, the technologiesmay include, but are not limited to: heat, finger pressure, high capturerate cameras, infrared light, optic capture, tuned electromagneticinduction, ultrasonic receivers, transducer microphones, laserrangefinders, shadow capture, and the like. According to an embodiment,the touch input device may be configured to detect near-touches (i.e.within some distance of the touch input device but not physicallytouching the touch input device). The touch input device may also act asa display 28. The input/output controller 22 may also provide output toone or more display screens, a printer, or other type of output device.

A camera and/or some other sensing device may be operative to record oneor more users and capture motions and/or gestures made by users of acomputing device. Sensing device may be further operative to capturespoken words, such as by a microphone and/or capture other inputs from auser such as by a keyboard and/or mouse (not pictured). The sensingdevice may comprise any motion detection device capable of detecting themovement of a user. For example, a camera may comprise a MICROSOFTKINECT® motion capture device comprising a plurality of cameras and aplurality of microphones.

Embodiments of the invention may be practiced via a system-on-a-chip(SOC) where each or many of the components/processes illustrated in theFIGURES may be integrated onto a single integrated circuit. Such a SOCdevice may include one or more processing units, graphics units,communications units, system virtualization units and variousapplication functionality all of which are integrated (or “burned”) ontothe chip substrate as a single integrated circuit. When operating via aSOC, all/some of the functionality, described herein, may be integratedwith other components of the computing device/system 100 on the singleintegrated circuit (chip).

As mentioned briefly above, a number of program modules and data filesmay be stored in the mass storage device 14 and RAM 9 of the computer100, including an operating system 16 suitable for controlling theoperation of a computer, such as the WINDOWS 7®, WINDOWS SERVER®,operating systems from MICROSOFT CORPORATION of Redmond, Wash.

The mass storage device 14 and RAM 9 may also store one or more programmodules. In particular, the mass storage device 14 and the RAM 9 maystore one or more applications 24, such as productivity applications,and may store one or more Web browsers 25. The Web browser 25 isoperative to request, receive, render, and provide interactivity withelectronic documents, such as a Web page. According to an embodiment,the Web browser comprises the INTERNET EXPLORER Web browser applicationprogram from MICROSOFT CORPORATION and the applications 24 are theMICROSOFT OFFICE suite of applications.

Zoom manager 26 is configured to zoom objects and display text within adocument. Zoom manager 26 may be a part of one or more differentapplications/services. For example, zoom manager 26 may be a part of acloud based multi-tenant service that provides resources (e.g. services,data . . . ) to different tenants. Zoom manager 26 may be a part ofother programs/services 19, such as, but not limited to: word processingapplications, presentation applications, spreadsheet applications,drawing applications, and the like. According to an embodiment, zoommanager 26 operates in conjunction with the MICROSOFT OFFICEapplications. The applications may be available online in a cloud basedservice and/or may be installed on a client computing device.

Zoom manager 26 is configured to determine when an object is selected tobe zoomed. The selection may be through a touch gesture (e.g. tap)and/or through some other selection action (e.g. mouse, stylus,selecting a menu option . . . ). Zoom manager 26 calculates a scalingfactor that is used when zooming the object. The scaling factor is basedon current viewing properties of a document and properties of the objectas well as the current size of the application window and device. Thedetermined viewing properties may include a current zoom level of thedocument and/or a font size of text within the document and/or someother viewing/display characteristics. The determined object properties(e.g. a font size in the object, a current scaling of the object, . . .) are used when calculating the scaling factor to zoom the object suchthat after the object is zoomed, the object is similar to a viewingexperience for the rest of the document. For example, the object may beinitially zoomed by a scaling factor of 145% since the other text in thedocument is currently displayed using a 16 point font, but the text inthe object to zoom is currently displayed at an 11 point font. Zoomingthe object to 145% displays the object similarly to the other content inthe document. Other methods may be used to determine the scaling factor(see description below). For example, the object may be zoomed such thatthe entire object fits on the screen. The object may be zoomed such thatthe user may only scroll in one direction to see all of the object (oneaxis fits on the screen).

Zoom manager 26 may also be configured to display text of a document toincrease the readability of the document. For example, the text may bedisplayed in columns such that each line of displayed text averages outto a predetermined number of characters (e.g. 50-75 characters) perline. Zoom manager 26 determines a current display size and width of anaverage character are determined and used to calculate how many columnsof text to display within the display. Zoom manager 26 attempts to usethe display space efficiently. For example, if changing the number ofcharacters down to 50 characters per line results in 3 columns, whileusing 60 characters would result in 2 columns with a lot of blank space,zoom manager 26 may select to display the text at 50 characters perline. When the zoom level of the text changes, the text is redisplayedto maintain the average of the desired number of characters per line.

Additional details regarding the operation of zoom manager 26 will beprovided below.

FIG. 2 illustrates an exemplary system for zooming objects anddisplaying text within a document. As illustrated, system 200 includesapplication program 24, callback code 212, zoom manager 26, and touchscreen input device/display 202.

In order to facilitate communication with the zoom manager 26, one ormore callback routines, illustrated in FIG. 2 as callback code 212 maybe implemented. According to one embodiment, application program 24 isan application that is configured to receive input from atouch-sensitive input device 202. For example, zoom manager 26 mayprovide information to application 24 in response to a user's finger(i.e. finger on hand 232) selecting an object within a document to zoom.

Touch input system 200 as illustrated comprises a touch screen inputdevice 202 that detects when a touch input has been received (e.g. afinger touching or nearly teaching the touch screen). Any type of touchscreen may be utilized that detects a user's touch input. For example,the touch screen may include one or more layers of capacitive materialthat detects the touch input. Other sensors may be used in addition toor in place of the capacitive material. For example, Infrared (IR)sensors may be used. According to an embodiment, the touch screen isconfigured to detect objects that in contact with or above a touchablesurface. Although the term “above” is used in this description, itshould be understood that the orientation of the touch panel system isirrelevant. The term “above” is intended to be applicable to all suchorientations. The touch screen may be configured to determine locationsof where touch input is received (e.g. a starting point, intermediatepoints and an ending point). Actual contact between the touchablesurface and the object may be detected by any suitable means, including,for example, by a vibration sensor or microphone coupled to the touchpanel. A non-exhaustive list of examples for sensors to detect contactincludes pressure-based mechanisms, micro-machined accelerometers,piezoelectric devices, capacitive sensors, resistive sensors, inductivesensors, laser vibrometers, and LED vibrometers.

Zoom manager 26 is configured to zoom objects and display text within adocument, such as document 240. The document may be associated with oneor more applications. For example, the document may be a word-processingdocument, a spreadsheet document, a presentation document (e.g. aslide), a drawing, and the like. Zoom manager 26 is configured tooperate in conjunction with the application 24 that displays thedocument and object. Application 24 may be available online in a cloudbased service and/or may be installed on a client computing device.

Zoom manager 26 is configured to determine when an object is selected tobe zoomed. The selection may be through a touch gesture (e.g. tap)and/or through some other selection action (e.g. mouse, stylus,selecting a menu option . . . ). In the current example, a user hastapped on object 250 using their hand 232. In response to the selectionof object 250, zoom manager 26 calculates a scaling factor that is usedto zoom the object. The scaling factor is based on current viewingproperties of a document and properties of the object as well as thecurrent size of the application window and device. The determinedviewing properties may include a current zoom level of the documentand/or a font size of text within the document and/or some otherviewing/display characteristics. In the current example, text 240 isdisplayed using a 14 point font. The determined object properties (e.g.a font size in the object, a current scaling of the object, . . . ) areused to calculate the scaling factor to zoom the object such that afterthe object is zoomed, the object is similar to a viewing experience forthe rest of the document. In the current example, the object has textthat is displayed in a 6 point font. Zooming object by a scaling factorthat results in object 250 being approximately 233% results in a similarviewing experience for a viewer (e.g. 14/6=2.33). According to anembodiment, the zoomed object is displayed within zoom window 245. Asdiscussed, other methods may be used to determine the scaling. Forexample, the selected object may be displayed to a predetermined sizewithin the viewable area (e.g. 50%, 75%, 90%). According to anembodiment, when immersive zoom is invoked, the contents of the windoware dimmed, to provide more focus on the object.

Non-image objects and image objects may be scaled differently. Accordingto an embodiment, for Non-Image Objects (e.g. Tables, Textboxes, Charts,and SmartArt) the following logic applies. When both dimensions of thezoomed object fit within the zoom window, then the zoomed object iscentered in the zoom window. When one dimension of the zoomed objectfits within the zoom window, the smaller dimension relative to the zoomwindow is centered along its axis, allowing scrolling/panning along theother axis. When neither dimension of the zoomed object fits within thezoom window, the zoomed object is scaled such that the smaller dimensionof the zoomed object relative to the zoom window fits along one axis,allowing scrolling/panning on the other axis.

According to an embodiment, for Image-Objects (e.g. Images, OLE objects,Shapes), the following logic applies. When both dimensions of the zoomedobject fit within the zoom window, then the zoomed object is centered inthe zoom window. When one dimension fits, the larger dimension is scaledrelative to the zoom window. According to an embodiment, the imageobject is resized to 90% of the zoom window on the larger side, andcenter the smaller side relative to the app window along its axis. Whenneither dimension fits, both dimensions are scaled until one of thedimension fits within the resize window. According to an embodiment, theimage object is resized to 90% of the zoom window on the larger siderelative to the app window, and center the smaller side along its axis.

A scrollbar may not be shown when an object exceeds a dimension size.For example, when the immersive zoom window is invoked using touch,scrollbars are not shown. Instead, a user may navigate the object usinga panning gesture.

FIG. 3 shows an example of selecting an object to zoom and zooming theobject.

Display 310 shows an initial display of object 315. The object may be animage object (e.g. Images, OLE objects, Shapes, WordArt, . . . ) or anon-image object (e.g. Tables, Textboxes, Charts, SmartArt, . . . ).

Display 320 shows object 315 zoomed in response to a user selection. Inresponse to the zoom selection, a zoom window 325 is displayed. Zoomwindow may be configured to be different sizes, such as 90% of the sizeof a current display window or some size that is larger than the objectthat is selected to zoom. According to an embodiment, the zoom window issized proportionally (e.g. 60%, 75%, 90% . . . ) and relative to thedisplay window (e.g. display 310) that shows the object.

When an object is selected for zooming, a determination is made as to acurrent zoom characteristics of the document that the image is displayedwithin. For example, a user may have changed the zoom level and/or fontsize of the document to a specified level (e.g. +5% zoom level comparedto default, increased font size from 12 point to 14 point). The currentviewing properties of the document are used in determining an initialzoom amount for the selected object. Properties of the selected objectare determined (e.g. font size of any text within object, a currentscaling factor applied to the object). The selected object is attemptedto be initially zoomed to a level that corresponds to the current zoomcharacteristics of the window. A zoom value is calculated to display theobject at the desired zoom level. In some situations (e.g. thisexample), both dimensions (horizontal, vertical) of the object afterzooming will fit within the zoom window. In other situations, one of thedimensions (horizontal or vertical) of the object after zooming will fitwithin the zoom window. In other situations, neither of the dimensionshorizontal or vertical) of the object after zooming will fit within thezoom window (See FIGS. 4-6 and related discussion).

Zoom sizing options (e.g. −,+ buttons 325) may be used toincrease/decrease the size of the zoomed object. According to anembodiment, the zoom sizing buttons zoom to predetermined zoom levelsinstead of allowing a user to incrementally change a zoom levelpercentage (e.g. 1% larger, 2% larger . . . ). The predetermined zoomlevels may be determined based on a size of the currently zoomed objectand available space within the zoom window. The zoom levels may also bebased on a size of the object to increase a font size of the text withinthe object a predetermined amount (e.g. currently 12 point to 14, 18, 24. . . ) sizes. According to an embodiment, there is one larger zoomlevel from the initial zoom level and one smaller zoom level compared tothe initial zoom level for the object.

FIG. 4 shows an object that fits in a window in a small zoom state, aninitial zoom state and a large zoom state.

Display 405 shows an object before zooming.

Display 410 shows the object displayed in an initial zoom state within azoom window. The object is zoomed such that the larger dimension of theobject when zoomed fits within the zoom window. The smaller dimension iscentered within the zoom window.

Display 420 shows the object displayed in a large zoom state. The objectis zoomed such that the smaller dimension fits (e.g. 90%) within thezoom window. A scroll bar may be displayed along the other dimension toallow scrolling of the zoomed object.

Display 430 shows the object displayed in a small zoom state. The objectis center within the zoom window.

FIG. 5 shows an object that includes a dimension that does not fit intoa window after zooming to at least one of: a small zoom state, aninitial zoom state and a large zoom state.

Display 505 shows an object before zooming.

Display 510 shows the object displayed in an initial zoom state. Thesmaller dimension is centered within the zoom window and the largerdimension is zoomed to the determined zoom size. A scroll bar may bedisplayed for the dimension that does not fit within the zoom window.

Display 520 shows the object displayed in a large state. The smallerdimension is zoomed to fit within the zoom window. A scroll bar may bedisplayed for the dimension that does not fit within the zoom window.

Display 530 shows the object displayed in a small state. The object iszoomed such that both dimensions fit within the zoom window.

FIG. 6 shows an object that includes at least one dimension that doesnot fit in a window in a small zoom state, an initial zoom state and alarge zoom state.

Display 605 shows an object before zooming.

Display 610 shows the object displayed in an initial zoom state. Thelarger dimension is zoomed to fit within the zoom window and the smallerdimension is centered within the zoom window after zooming.

Display 620 shows the object displayed in a large state. The smallerdimension is zoomed to fit within the zoom window. Scroll bars may bedisplayed for the dimensions that do not fit within the zoom window.

Display 630 shows the object displayed in a small state. The object iszoomed such that both dimensions fit in the zoom window.

FIG. 7 shows a comments element displayed within the zoom window inresponse to receiving a selection of showing comments.

When the comment hints (2) are selected to be displayed (e.g. selectingarea 702 and/or selecting another option), a comment area surfacesabove/near the zoomed object (1). The position of the comment area canvary based on the characteristics of the object. For example, if theobject is taller than it is wide, the comments may be displayed next tothe object. When the object is wider than it is tall, the comments maybe placed below the object. When the object and comments do not both fiton the screen at the same time, the comments may be displayed in a popupwindow.

According to an embodiment, tapping or clicking on the zoomed objectcauses the comment hints to close. A user may also select a close buttonin the upper-right hand portion of the window to close the commenthints.

FIGS. 8 and 9 shows illustrative processes for zooming an object anddisplaying text in a reading mode. When reading the discussion of theroutines presented herein, it should be appreciated that the logicaloperations of various embodiments are implemented (1) as a sequence ofcomputer implemented acts or program modules running on a computingsystem and/or (2) as interconnected machine logic circuits or circuitmodules within the computing system. The implementation is a matter ofchoice dependent on the performance requirements of the computing systemimplementing the invention. Accordingly, the logical operationsillustrated and making up the embodiments described herein are referredto variously as operations, structural devices, acts or modules. Theseoperations, structural devices, acts and modules may be implemented insoftware, in firmware, in special purpose digital logic, and anycombination thereof.

FIG. 8 shows a process for zooming an object.

After a start operation, the process 800 flows to operation 810, wherean object to zoom is selected. The object may be a graphical image or anon-image object (e.g. table, interactive charts, textboxes, SMARTARTgraphics, and the like). The object may be selected by various means(e.g. touch input, cursor, stylus . . . ). For example, a user may tapon an object within a document to initiate the zooming process.

Moving to operation 820, viewing properties of the window in which theobject is to be zoomed is determined. For example, the viewingproperties may include a width and height of the window that displaysthe object, a current font size of text displayed with the display ofthe object, a zoom level applied to the document containing the object,defined page borders/margins, and the like.

Flowing to operation 830, properties of the object to zoom aredetermined. For example, is the object an image, not an image, a currenttext size used for text within the object, a current zoom level on theobject and the like.

Transitioning to operation 840, a scaling factor to zoom the object toan initial zoom state is calculated. According to an embodiment, thescaling factor is based on the determined viewing properties and objectproperties. For example, the object may be initially be zoomed 145%since the other text in the document is currently displayed using a 16point font, but the text in the object to zoom is currently at an 11point font. Zooming the object to 145% displays the object similarly tothe other content in the document. The scaling factor may be determinedusing other methods. For example, a zooming window may be sized based onthe current viewable window area (e.g. 90% of the current viewablearea). The object may then be zoomed to a level such that each dimension(horizontal and vertical) fit within the zoom window. For example, theobject is zoomed such that at least one dimension of the object whenzoomed is within a predetermined distance to an edge of the zoom window(e.g. 10%, 5%).

Moving to operation 850, the object is scaled/zoomed. The object may bescaled such that each of the parts of the object are scaled to thescaling factor.

Flowing to operation 860, the object is displayed. According to anembodiment, the object is displayed within a zoom window that may beclosed when the user is done viewing the object in a zoomed state.

Transitioning to decision operation 870, a determination is made as towhether to change the zoom level of the object. For example, the usermay desire to make the object smaller/larger, the window may be resized,the device characteristics change (e.g. a phone is rotated fromlandscape to portrait orientation, and the like. According to anembodiment, the zoom options are limited to a predetermined number ofoptimized zoom states instead of allowing a user to incrementally changea zoom level percentage (e.g. 1% larger, 2% larger . . . ). Thepredetermined zoom states may be determined based on a size of thecurrently zoomed object and available space within the zoom window. Thezoom levels may also be based on a size of the object to increase a fontsize of the text within the object a predetermined amount (e.g.currently 12 point to 14, 18, 24 . . . ) sizes. According to anembodiment, there is one larger zoom level from the initial zoom leveland one smaller zoom level compared to the initial zoom level for theobject.

The process then moves to an end operation and returns to processingother actions.

FIG. 9 illustrates a process for displaying text in a document.

After a start operation, process 900 flows to operation 910, where adocument is accessed. The document may be a word-processing document, aspreadsheet document, a presentation document (e.g. a slide), a drawing,and the like.

Moving to operation 920, a display size is determined. The display sizeis an area where the text is/will be displayed. When displaying textwithin a graphical window then the display size is the size of thewindow.

Flowing to operation 930, one or more text properties are determined.According to an embodiment, an average character width for the textwithin the document is determined. The average character width may bedetermined based on a standard font used within the document, an averageof the font widths used within the document, an average font width usedwithin each paragraph of the document, an average used within a selectedarea to display in a reading mode, and the like.

Transitioning to operation 940, a desired number of characters todisplay on each line of the display is determined. For example, theaverage number of characters may be determined to be at a value in therange from 50-75 to improve the readability of the document. Accordingto an embodiment, the average number of characters to display for eachline is set to 66 characters per line.

Moving to operation 950, a number of columns that may be displayed basedon the display size is determined using the desired number of charactersto display per line and the average width of a character. According toan embodiment, a horizontal slider (or some other control) is not addedto display text that would go beyond a viewable area of a window. Forexample, if a column uses 4 inches and the display size is 7.5 inches,then one column is shown. When the column uses 4 inches and the displaysize is 9 inches, then two columns are used. A user may manually resizethe window to change the display of the text to more/fewer columns. Thenumber of characters to display per line may also be increasedautomatically to more optimally use the display space (e.g. within the50-75 range). The window may also be automatically changed to be larger(e.g. two columns takes 8 inches to display and the window is currentlyset to 7.8 inches and there is space on the monitor to expand thewindow).

Flowing to operation 960, the text is displayed in the determined numbercolumns such that the average number of characters per line that aredisplayed is approximately equal to the desired number of characters perline to display as determined in operation 940.

Transitioning to decision operation 970, a determination is made as towhether there is a zoom/document/display change that affects the numberof characters that can be displayed. For example, a user may zoom thedocument, change a font size of the document and/or change a displaysize.

When there is a change, the process returns to operation 920 torecalculate the layout of the text such that the desired number ofcharacters per line is attempted to be maintained.

The process then moves to an end operation and returns to processingother actions.

FIG. 10 shows an initial layout of text.

The text shown in display 1000 is not optimized for readability.Instead, as much text as fits within the page size is displayed. Manytimes, when a user increases text size, the page may exceed the windowwidth, forcing the reader to scroll horizontally back and forth to viewthe text.

FIG. 11 shows a layout of text displayed for readability. The text shownin FIG. 11 is the text displayed in FIG. 10 that has been displayed toaverage approximately 66 characters per line within two columns. While66 characters has been chosen as the average number of characters perline to display, other numbers may be used (e.g. somewhere near/between50-76 characters per line). As can be seen, all of the text is shownwithin the window such that a user does not have to horizontallypan/scroll to see text.

FIG. 12 shows maintaining a ratio as a zoom level is increased fordisplay of text. The text shown in FIG. 12 is the text displayed in FIG.11 and FIG. 10. In the current example, the user has increased the zoomlevel of the text. As a result of the zooming, the layout of the texthas changed to one column but the text is still displayed to averageapproximately 66 characters per line. As can be seen, all of the text isshown within the window such that a user does not have to horizontallypan/scroll to see text.

The above specification, examples and data provide a completedescription of the manufacture and use of the composition of theinvention. Since many embodiments of the invention can be made withoutdeparting from the spirit and scope of the invention, the inventionresides in the claims hereinafter appended.

What is claimed is:
 1. A method for displaying text within a documentfor readability, comprising: accessing a document comprising text;determining a display size for displaying the text; determining a textproperty; determining a desired number of characters per line todisplay; determining a number of columns used to display the text basedon the text property, the display size and the desired number ofcharacters per line to display; and displaying the text in thedetermined number of columns within a window that approximately averagesthe desired number of characters per line.
 2. The method of claim 1,wherein determining the text property comprises determining an averagecharacter width.
 3. The method of claim 1, wherein determining thedesired number of characters per line to display comprises setting thedesired number of characters per line between fifty and seventy-five. 4.The method of claim 1, wherein determining the number of columns todisplay based on the text property comprises modifying column widthswithin the window.
 5. The method of claim 1, wherein determining thenumber of columns to display based on the text property comprisesmaintaining the display size such that the displayed text is viewablewithin the display size without scrolling.
 6. The method of claim 1,further comprising determining: a width of the display size, a borderwidth, and a padding that is used in determining the number of columns.7. The method of claim 1, determining when a change to a view of thedocument affects a size of the displayed text, and in response to thechange to the determining at least one of: a new display size fordisplaying the text; determining a new text property; and determiningthe number of columns used to display the text.
 8. The method of claim1, wherein determining the number of columns used to display the textbased on the text property, the display size and the desired number ofcharacters per line to display comprises determining a maximum number ofcolumns that fit within the display size without adding a scrollingoption to the window.
 9. A computer-readable medium havingcomputer-executable instructions for displaying text within a documentfor readability, comprising: accessing a document comprising text;determining a display size for displaying the text; determining anaverage character width for characters in the document; determining adesired number of characters per line to display; determining a numberof columns used to display the text based on the average characterwidth, the display size and the desired number of characters per line todisplay; and displaying the text in the determined number of columnswithin a window that approximately averages the desired number ofcharacters per line.
 10. The computer-readable medium of claim 9,wherein determining the desired number of characters per line to displaycomprises setting the desired number of characters per line betweenfifty and seventy-five.
 11. The computer-readable medium of claim 9,further comprising maintaining the display size such that the displayedtext is viewable within the display size of the window without adding ahorizontal scroll.
 12. The computer-readable medium of claim 9, furthercomprising determining: a width of the window, a border width, and apadding that is used in determining a maximum number of columns.
 13. Thecomputer-readable medium of claim 9, determining when a change to a viewof the document affects a size of the displayed text, and in response tothe change to the determining at least one of: a new display size fordisplaying the text; determining a new average character width; anddetermining the number of columns used to display the text.
 14. Thecomputer-readable medium of claim 9, wherein determining the number ofcolumns used to display the text based on the text property, the displaysize and the desired number of characters per line to display comprisesdetermining a maximum number of columns that fit within the display sizewithout adding a scrolling option to the window.
 15. A system fordisplaying text within a document for readability, comprising: aprocessor and a computer-readable medium; an operating environmentstored on the computer-readable medium and executing on the processor;and an zoom manager operating under the control of the operatingenvironment and operative to: accessing a document comprising text;determining a display size for displaying the text; determining anaverage character width for characters in the document; determining adesired number of characters per line to display; determining a numberof columns used to display the text based on the average characterwidth, the display size and the desired number of characters per line todisplay; and displaying the text in the determined number of columnswithin a window that approximately averages the desired number ofcharacters per line.
 16. The system of claim 15, wherein determining thedesired number of characters per line to display comprises setting thedesired number of characters per line between fifty and seventy-five.17. The system of claim 15, further comprising maintaining the displaysize such that the displayed text is viewable within the display size ofthe window without adding a horizontal scroll.
 18. The system of claim15, further comprising determining: a width of the window, a borderwidth, and a padding that is used in determining a maximum number ofcolumns.
 19. The system of claim 15, determining when a change to a viewof the document affects a size of the displayed text, and in response tothe change to the determining at least one of: a new display size fordisplaying the text; determining a new average character width; anddetermining the number of columns used to display the text.
 20. Thesystem of claim 15, wherein determining the number of columns used todisplay the text based on the text property, the display size and thedesired number of characters per line to display comprises determining amaximum number of columns that fit within the display size withoutadding a scrolling option to the window.